#include <FuncaoMatrizEstatica.h>

FuncaoMatrizEstatica::FuncaoMatrizEstatica()
{
matrizPesos[0][0] = 35;
matrizPesos[0][1] = -1;
matrizPesos[0][2] = 5;
matrizPesos[0][3] = 2;
matrizPesos[0][4] = 2;
matrizPesos[0][5] = 5;
matrizPesos[0][6] = -1;
matrizPesos[0][7] = 35;
matrizPesos[1][0] = -1;
matrizPesos[1][1] = -5;
matrizPesos[1][2] = 3;
matrizPesos[1][3] = 1;
matrizPesos[1][4] = 1;
matrizPesos[1][5] = 3;
matrizPesos[1][6] = -5;
matrizPesos[1][7] = -1;
matrizPesos[2][0] = 5;
matrizPesos[2][1] = 3;
matrizPesos[2][2] = 3;
matrizPesos[2][3] = 1;
matrizPesos[2][4] = 1;
matrizPesos[2][5] = 3;
matrizPesos[2][6] = 3;
matrizPesos[2][7] = 5;
matrizPesos[3][0] = 2;
matrizPesos[3][1] = 1;
matrizPesos[3][2] = 1;
matrizPesos[3][3] = 0;
matrizPesos[3][4] = 0;
matrizPesos[3][5] = 1;
matrizPesos[3][6] = 1;
matrizPesos[3][7] = 2;
matrizPesos[4][0] = 2;
matrizPesos[4][1] = 1;
matrizPesos[4][2] = 1;
matrizPesos[4][3] = 0;
matrizPesos[4][4] = 0;
matrizPesos[4][5] = 1;
matrizPesos[4][6] = 1;
matrizPesos[4][7] = 2;
matrizPesos[5][0] = 5;
matrizPesos[5][1] = 3;
matrizPesos[5][2] = 3;
matrizPesos[5][3] = 1;
matrizPesos[5][4] = 1;
matrizPesos[5][5] = 3;
matrizPesos[5][6] = 3;
matrizPesos[5][7] = 5;
matrizPesos[6][0] = -1;
matrizPesos[6][1] = -5;
matrizPesos[6][2] = 3;
matrizPesos[6][3] = 1;
matrizPesos[6][4] = 1;
matrizPesos[6][5] = 3;
matrizPesos[6][6] = -5;
matrizPesos[6][7] = -1;
matrizPesos[7][0] = 35;
matrizPesos[7][1] = -1;
matrizPesos[7][2] = 5;
matrizPesos[7][3] = 2;
matrizPesos[7][4] = 2;
matrizPesos[7][5] = 5;
matrizPesos[7][6] = -1;
matrizPesos[7][7] = 35;
}

int FuncaoMatrizEstatica::avalia(const Tabuleiro& tab,const Jogador& jog)
{
	int i,j;
	int id;
	int qtdJog = 0;
	int qtdAdv = 0;

	id = jog.getId();

	for(i=0; i<TAM; i++)
	{
		for(j=0; j < TAM; j++)
		{
			if(tab.getPos(i,j) != 0)
			{
				if(tab.getPos(i,j) == id)
					qtdJog += matrizPesos[i][j];
				else
					qtdAdv += matrizPesos[i][j];
			}		
		}
	}
	
	return (qtdJog - qtdAdv);	
}
